package com.sw.youvote.server;

import java.util.logging.Logger;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.sw.youvote.client.services.ImageService;
import com.sw.youvote.server.persistentobjects.ImageDAO;
import com.sw.youvote.server.persistentobjects.ImageJdoDAO;
import com.sw.youvote.server.serverobjects.ImageBean;

public class ImageServiceImpl extends RemoteServiceServlet implements ImageService {
	
	private static final long serialVersionUID = 1L;
	private ImageDAO imageDAO = new ImageJdoDAO();
	private static final Logger log = Logger.getLogger(ImageJdoDAO.class
			.getName());

	/**
	 * Metodo utilizado para recuperar imagen interna
	 * almacenado en el repositorio de Google
	 */
	@Override
	public byte[] getImage(String id) {
		ImageBean imageBean = null;
		byte[] imageContent = null;
		
		imageBean = imageDAO.getImage(id);
		
		if (!imageBean.isExternal()) {
			if (imageBean != null && imageBean.getImage() != null) {
				imageContent =imageBean.getImage();
			} else {
				log.info("No se ha podido recuperar objeto imagen o es vacio");
			}
		} else {
			log.info("La imagen es de tipo externo. Usar String getImage (String)");
		}
		
		return imageContent;
	}

	@Override
	public String getImageURL(String id) {
		String url = null;
		ImageBean imageBean = null;
		
		imageBean = imageDAO.getImage(id);
		if (imageBean != null && imageBean.isExternal()) {
			url = imageBean.getImageurl();
		} else {
			log.info("No se ha podido recuperar objeto imagen o es vacio");
		}
		
		return url;
	}
}


